自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孤星的博客

记录分享总结真实有用的内容于自己及后辈

  • 博客(53)
  • 问答 (2)
  • 收藏
  • 关注

原创 React入门——3.元素渲染

const element = <h1>Hello,World</h1>这是一个很常见的常量,值是JSX标签,不过在React中,它还有另一种定义——元素当我们使用此元素来确定页面具体内容时,会由React DOM来帮助我们更新浏览器DOM保持和元素的一致。React是如何将元素渲染成组件的?以第一节的例子来说,首先在index.html存在...

2022-03-28 04:24:31 688

原创 React入门——2.JSX简介

我们假定你已经学习了前面的内容在上一节中我们在网页上显示了HelloWorld,但是有没有人发现,我们的<div>Hello World</div>并不是在html文件,而是在js文件中呢?这就是我们写的第一个JSX标签,没错<div>Hello World</div>既不是普通的字符串,也不是html标签,他是React发明的一个Javascript语法拓展,可以帮助我们更好的描述UI应该呈现出的它应有的交互的本质形式,同时它具有Javascript的全

2022-03-25 06:46:01 361

原创 React入门——1.Create React App

准备我们假定你已经安装了Node.js(>= 8.1),并且可以使用npm(>=5.6)或yarn,VScode或WebStorm如果没有,请先去安装Node.js安装VScode安装WebStorm如果你没有接触过后端,在IDE方面请优先选择VScode如果你之前有接触过后端,并且使用过jetbrains家的产品,请优先考虑WebStorm,因为他更适合你的编码习惯开始在合适的文件夹中打开cmd,执行以下命令:npx create-react-app my-appcd

2022-03-25 05:50:31 971

原创 React工程目录简介

通过React脚手架创建的项目,共会有以下文件.gitnode_modulespublicsrc.gitignorepackage.jsonpackage-lock.jsonREADME.md.git 与 .gitignore.git是git初始化文件,.gitignore中的文件不会被存储至git中.gitignore中的默认文件路径是脚手架生成的node_modules此目录下存放所有依赖的第三方模块,一般不会手动更改publicpublic下分别有3个文件favico.

2022-03-19 05:26:54 1026

翻译 H5Input标签所有类型

原文可在W3C颁布的HTML 5.1 第二版 标准中查看,如果没有语言障碍,可以直接通过此标准学习H5。关键词数据类型组件类型hidden任意的字符串text没有换行符的文本文本字段或组合框search没有换行符的文本搜索字段或组合框tel没有换行符的文本文本字段或组合框url绝对网址文本字段或组合框email电子邮件地址或电子邮件地址清单文本字段或组合框password没有换行符的文本(敏感信息)模糊数据输入的文本字段

2022-03-19 03:13:31 452

原创 HTML5新增语义化标签全解

可在W3C颁布的HTML 5.1 第二版 标准中查看所有H5的标签,如果没有语言障碍,可以直接通过此标准学习H5。标签含义必要示例<article>定义文章。<aside>定义页面内容以外的内容。<details>定义用户能够查看或隐藏的额外细节。<figcaption>定义 <figure> 元素的标题。<figure>规定自包含内容,比如图示、图表、照片、代码清单等。

2022-03-19 02:45:21 281

原创 Mysql8通过Data文件恢复数据

我们将现有的无数据的Mysql叫做MysqlA,另一个有数据Mysql叫做MysqlB。备份Data文件将MysqlB的Data文件复制到桌面进行备份,如果你不确定Data文件在哪可以用以下指令查询show global variables like "%datadir%";如果此时MysqlB已损坏,无法执行sql,那么此时分两种情况你的Mysql是解压缩版如果你的Mysql是解压缩版,那么大概率可以在系统环境变量中查询到Mysql\bin文件夹的位置,找到该文件夹后,往回退一级到Mysql

2022-03-18 15:45:55 2527 3

原创 Mysql8安装教程——安装包版

1.进入Mysql官网2.点击上方Downloads进入下载页3.选择MySQL Community (GPL) Downloads——Mysql社区版下载4.选择MySQL Community Server——Mysql服务器社区版5.下载页面简介6.选择Go to Download Page 下载Mysql安装包版7.下载选择400M的下载8.继续下载这里是问你是否要登录,我们选择不需要,直接开始下载...

2022-03-17 19:56:05 4095 4

原创 Mysql8完全卸载教程

0.备份所有需要保留的数据库在Navicat中选择对应库表选择导出为Sql文件即可,如果卸载数据库的来由是因为数据库已经无法正常使用打开所以需要卸载数据库进行重新安装的话可以跳过这一步1.停止所有Mysql相关服务Win11直接搜索服务即可,选择以管理员身份打开找到Mysql相关服务,停止2.卸载所有Mysql程序右键WinLogo,选择安装的应用搜索Mysql,这里我已经提前删除过一部分,所以数量会少一些逐个删除所有Mysql程序即可删除所有Mysql残留文件Mysql8安装版默认

2022-03-17 04:18:50 6536

原创 完全解析为什么0.1+0.2=0.30000000000000004

引子可能因为某一次报错或某次面试,你会接触到这个问题,即0.1+0.2不等于0.3

2022-03-13 05:45:31 2155 7

原创 深入浅出Java基本数据类型

引子我们都知道Java中存在8种基本数据类型,但是大家对基本数据类型的认识可能依然不够全面。正文数据类型数据长度代表含义默认值取值包装类byte8位(bit)字节型0-128~127Byteshort16位2字节(byte)短整数型0-32768~32767Shortint32位4字节整数型0-2147483648~2147483647Integerlong64位8字节长整数型0L-922337203685477580

2022-03-08 17:27:29 290

原创 设计模式——单例模式完全解析

介绍单例模式是设计模式中最常用也最简单的一种,主要的使用场景是在程序开发中的各种工具类上,其作用在于保证一个类在整个程序中只有一个实例。

2022-02-22 21:39:40 475

原创 你不知道的CSS选择器权重机制

我们都知道在对同一元素做修饰的情况下!important>ID选择器>类选择器=属性选择器=伪类>类型选择器=伪元素>通用选择器那么如果更深入一些呢?我们可以在W3C公布的标准中找到如下内容以直接计算选择器的特异性选择器的特异性计算如下:计算选择器中 ID 选择器的数量 (= a)统计选择器中的类选择器、属性选择器和伪类的数量(= b)计算选择器中类型选择器和伪元素的数量 (= c)忽略通用选择器否定伪类中的选择器与其他选择器一样计算,但否定本身不计为伪类。连

2022-02-06 23:15:31 154

原创 CSS伪类、伪元素整理

伪类名称生效方式备注:link没有被访问过的超级链接css2:visited被访问过的超级链接css2:hover正被鼠标悬停触碰的内容css2:active按下按键没有松开的内容css2 尽量以link visited hover active的顺序书写伪类 否则会有伪类不生效:empty空标签css3:focus当前获得焦点的表单元素css3:enabled当前有效的表单元素css3:disable当前无效的表...

2022-01-04 10:16:06 112

原创 Docker安装教程——Windows

tip:安装教程一般都具有时效性,此篇文章起始于2021.05.28安装包下载点此下载Docker Desktop InstallerWindows系统准备Windows系统必须满足以下要求才能成功安装Docker Desktop。WSL 2后端系统版本要求Windows 10 64位:家庭版,专业版,企业版或教育版1903版(内部版本18362或更高版本)。启用WSL2功能1.以管理员身份打开Power shell,并运行以下指令dism.exe /online /enable-fe

2021-05-28 16:59:35 2228 2

原创 2021Lombok开发小册——是可达鸭

@Getterimport lombok.AccessLevel;import lombok.Getter;//默认访问级别为public@Getterpublic class LomBokTest { private Integer lombokTestInt; //@Getter(AccessLevel.NONE) 访问级别 无 不允许访问 不会生成相应Get方法 //@Getter(AccessLevel.MODULE) 访问级别 默认 =不写访问修饰符

2021-05-20 10:57:55 395 3

原创 自定义拦截器——Springboot/获取参数/手写response/400问题

创建自定义拦截器首先,需要创建一个类实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter抽象类此处使用实现Handle Interceptor的方式自定义拦截器,实际使用时无太大区别package common;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import org.s

2021-04-22 18:23:59 1782

原创 Java手动生成JWT

头部首先我们需要一个Json{ "alg":"HS256"}接着我们需要将其在Java中展示出来 String header = "{\n" + "\t\"alg\":\"HS256\"\n" + "}";之后要去除所有空格 String header = "{"alg":"HS256"}";报错了,很明显是有问题的,接着用转义字符将“正常展示出来 String header

2021-04-17 05:50:54 948

原创 JWT快速入门及理论知识

什么是JWT规范?JWT规范将一个token分为3部分,分别是标头(header)、载荷(payload)、签名(verify signature)三部分并以.进行分割,也就是说一个符合JWT规范所生成的token格式应当如下:xxxxx.yyyyy.zzzzztip:JWT官网:https://jwt.io/标头(header)标头首先是一个JSON,通常包含两部分。分别是代表令牌类型和所使用的签名的加密算法的typ和alg,例:{ "alg": "HS256", "typ": "J

2021-04-14 01:27:44 1409 2

原创 多级分类查询解决方案

表构建首先我们需要一张表,足以让我们无限扩展多级分类,一般情况下这张表应当是这个样子CREATE TABLE TYPE( id INT NOT NULL AUTO_INCREMENT COMMENT'主键 分类id', `name` VARCHAR(32) NOT NULL COMMENT'分类名称', `type` INT NOT NULL COMMENT'分类类型 1级分类 2级分类 3级分类......', father_id INT NOT NULL COMMENT'父id 依赖的父级

2021-03-18 04:16:02 3498 4

原创 Cookie和Session的区别

Cookie和Session的区别/CookieSession存储地Cookie存储在客户端Session存储在服务器端安全性具有被篡改Cookie的风险相比Cookie更加安全性能Cookie存储在客户端,所以基本不会损耗服务器性能Session存储在服务器端,当一段时间内访问增多,会过多损耗服务器性能存储上限能够存储的Cookie的数量和大小不同的浏览器限制也不同(至少为30个,每个4k)Session一般存储在内存中,也可以被序列化至硬盘,所以

2021-03-07 16:15:27 69

原创 转发和重定向的区别

转发和重定向的区别/转发重定向请求数量使用转发时从始至终只发生了一个请求使用重定向时 会重新生成一个新的请求跳转限制转发只能跳转到本站点的其他地方使用重定向时可以跳转至任意URL浏览器地址使用转发时浏览器地址不会发生变化使用重定向时浏览器地址会变为重定向的地址实际生效处转发操作发生在服务器内部重定向发生在客户端数据是否共享使用转发时数据全程共享使用重定向时两次请求数据不会共享最后更新于2021年3月7日原创不易,如果该文章对你有所帮

2021-03-07 08:05:20 147

原创 SpringBoot跨域(cors)解决方案

编写CorsConfig配置类package com.psyduck.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBase

2021-03-03 09:18:47 615

原创 Swagger2配置类

Maven依赖 <!--swagger2依赖--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dep

2021-03-02 23:40:53 1699

原创 Users用户类默认值及各属性可能的值

tip:User很有可能占用关键字,所以一般写作为Users以下为新用户注册时用户类可能需要的默认值及各属性可能的值,初始可以为空的值不考虑/可能的值可能的值可能的值备注用户Id不作填写,使用数据库的自增生成使用IdWork、全球唯一码生成工具或公司要求的工具生成的一串标识码/用户名直接使用注册时填写的用户名直接使用账号或在账号前后随机生成一个名字拼接后作为用户名固定字符+全球唯一码组合作为用户名用户密码所有用户使用一个默认密码使用用户自己填写的

2021-02-08 10:36:20 1016 1

原创 如何查看SpringBoot自动装配了哪些东西?

SpringBootApplication第一步 点进SpringBootApplicationEnableAutoConfiguration第二步 点进EnableAutoConfigurationAutoConfigurationImportSelector第三步 进入AutoConfigurationImportSelectorgetCandidateConfigurations找到getCandidateConfigurations方法在这个方法中有一行提示,如果notEmpt

2021-01-26 23:59:30 1476

原创 为什么SpringBoot中不需要使用@EnableTransactionManagement就能使用事务?

因为在SpringBoot中自动装配了此注解配置,所以已被默认启用,自然不需要手动加上此注解。定位EnableTransactionManagement自动装配我们首先来到spring.factories,并在其中搜索Transaction相关的内容,如下那么之后我们点进这个类中,看看SpringBoot到底是怎么做的,首先我们可以在类的文档注释中发现一些端倪。可以看到此类用于Spring事务的自动装配,接下来我们继续往下找,关键的出现了。SpringBoot在这里通过两种不同的动态代理JDK、

2021-01-26 23:40:37 2211 2

原创 事务的传播机制

REQUIRED(默认的):如果当前没有事务,则自己新建一个事务,并且传播给方法中调用的其他方法,如果已经存在事务,则加入此事务。举例:A方法中包含B、C、D方法,B使用REQUIRED,则B方法新建一个事务,调用A方法时,只有B方法受到事务支持。如A、B、C、D方法中,只有A方法使用REQUIRED,则ABCD中,B、C、D在被A方法调用时都受事务影响,但是单独运行B、C、D方法时,因为B、C、D并未加上REQUIRED注解,所以不受事务影响。适用于增、删、改操作SUPPORTS:如果当

2021-01-12 23:57:38 755

原创 maven常用依赖整理

资源属性 <properties> <project.build.sourceEncodind>UTF-8</project.build.sourceEncodind> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version&

2021-01-11 11:14:47 448

原创 RESTful设计规范(部分)

注解方面@GetMapping:查询操作使用GetMapping@PostMapping:保存(新增)操作使用PostMapping@PutMapping:修改操作使用PutMapping@PatchMapping:部分修改操作使用PatchMapping,即此操作只修改实体的一部分数据@DeleteMapping:删除操作使用DeletMappingand 省事情况(大部分情况)下,查询使用GetMapping,其他所有操作都是用PostMapping,不会影响程序正常使用。URL方面在U

2021-01-08 18:39:18 220

原创 PDMan完整使用教程

下载及安装点此下载PDMan-win64_v2.2.0.exe首页功能介绍新案例点击首页的创建新项目,然后选择一个合适的路径。接下来我们只介绍一眼看不懂什么意思的功能。设置默认属性设置中的第一栏是默认属性,其实这就是一个默认的新表结构,当你在PDMan中新建一个表时,将自带你设置中的默认属性。字段名:数据库中comment的内容逻辑名:实际的数据库字段名类型:数据库字段类型说明:数据库中comment的内容主键:设置是否为主键非空:设置是否为非空自增:设置是否为自增默认

2021-01-06 19:25:13 32790 14

原创 PDMan报错:连接失败!出错信息:CLIENT_PLUGIN_AUTH is required

问题介绍连接失败!出错信息:客户端插件认证是必需的CLIENT_PLUGIN_AUTH is required问题原因1.由于数据库驱动版本和数据库版本互相不兼容,也就是常说的mysql-connector-java-x.x.xx-bin.jar不符合mysql数据库版本所用环境系统:Windows10系统PDMan:Version 2.2.0 2020.9Java:java version “1.8.0_181”Java™ SE Runtime Environment (build 1

2021-01-06 07:52:54 2879 2

原创 如何通过Maven创建聚合工程及建立依赖?

创建一个Maven项目对于一个Maven聚合工程我们首先需要一个顶级工程,或者说父工程。首先选择Maven,取消勾选Create from archetype,然后挑选完jdk后选择Next。填写上合适的GroupId和Artifactid,之后选择Next。确定ProjectName,点击Finish。创建成功时的样子。创建模块这里我们按照正常的项目分层来创建不同的模块,首先我们创建第一个module。右击项目名称,选择New,继续选择Module…Next在项目名后添加 -Comm

2021-01-05 04:56:18 642

原创 通过跟踪源码证明在Java中通过执行Start()方法创建线程

/*** * 线程创建跟踪 */public class ThreadCreate { public static void main(String[] args) { new Thread(()->{ System.out.println(1); }).start(); }}在以上代码中,线程并非在new的时候就被创建,而是执行了start()方法之后才被创建。继续往下跟踪,进入start()方法所在类查看源码,找

2021-01-05 04:23:30 240

原创 Redis在Windows和Linux上有哪些区别?

Redis在WIndows和Linux上有哪些区别?我们知道最开始Redis只能在Linux上使用,原因可以在源代码上找出在Redis的源码中,很多地方写死了需要调用Linux的Epoll方法来实现多路复用,但是Windows并没有Epoll方法,微软也曾尝试实现一个功能类似的方法,用的是IOCP,但是最终也放弃了。除此以外,Windows也没有fork()函数,但是Windows也希望Redis可以在Windows上使用,怎么办呢?硬改,Epoll不支持那就只用Windows提供的Select,

2020-12-31 22:54:32 3250

原创 BIO、NIO及多路复用

BIO通讯模式模拟/*** * BIO通讯模式模拟 */public class BIOSocket{ static byte[] bs = new byte[1024]; static ArrayList<Socket> socketList = null; public static void main(String[] args) throws IOException { ServerSocket serverSocket = new S

2020-12-31 22:52:47 151

原创 为什么要重写RedisTemplate?

我们知道SpringBoot官方给出了2种实例化方式,分别是RedisTemplate<Object,Object>和RedisTemplate<String,String>这两种或多或少都有一些问题,第一种对key所采用的序列化方式是JdkSerializationRedisSerializer由此种方式序列化的key在存入Redis数据库时会被转为16进制同时具有类型前缀,这样想要拿取此key对应的value还要先算出此key的值,所以不采用该种。第二种要求value值类

2020-12-31 22:49:46 1163

原创 Redis多线程、持久化及benchmark压力测试

为何重写RedisTemplate?SpringBoot给出了2种实例化方式,分别是RedisTemplate<Object,Object>RedisTemplate<String,String>这两种或多或少都有一些问题,比如第一种对key所采用的序列化方式是JdkSerializationRedisSerializer由此种方式序列化的key在存入Redis数据库时会被转为16进制同时具有类型前缀,这样想要拿取此key对应的value还要先算出此key的值,所以不采用该

2020-12-11 21:47:02 751 2

原创 Redis数据类型——String,List,Hash,Set,Sorted Set

本节介绍大家好,我是孤星,本节主要为初学Redis的小伙伴们介绍Redis中的五大数据类型.Key-Value键值对——StringString类型是简单的Key-Value键值对,不光可以用来存储“String”类型数据,也可以用来存储“int”类型数据,是最常见的一种数据类型,应用非常广泛。下面是一些简单的String类型数据操作的例子。使用set来存入一个String数据,使用g...

2020-12-09 16:27:22 223

原创 Tomcat入门

Tomcat服务器Tomcat是一个免费开源的Web容器,他是Apache基金会的Jakarta项目中的一个核心项目。Tomcat是在Sun公司(现被Oracle收购)的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP标准实现,随着Web应用的发展,Tomcat被越来越多地应用于商业用途。tip:Web容器是一种服务程序,为Web项目提供运...

2020-12-09 16:25:43 251

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除